package com.demo.java.OD101_150.OD149;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【数列描述 数列还原】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145740343
 */
public class OdMain {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 读取输入的次数 n
        int n = Integer.parseInt(in.nextLine());
        in.close();

        // 初始化序列为 "1"
        StringBuilder content = new StringBuilder("1");

        // 如果 n 为 0，直接输出初始序列
        if (n == 0) {
            System.out.println(content);
            return;
        }

        // 进行 n 次变换
        for (int i = 1; i <= n; i++) {
            StringBuilder next = new StringBuilder();

            // 将当前序列转换为字符数组
            char[] chars = content.toString().toCharArray();
            char last = chars[0];  // 当前字符
            int count = 1;  // 计数当前字符出现的次数

            // 遍历字符数组，统计相邻相同字符的数量
            for (int j = 1; j < chars.length; j++) {
                if (chars[j] == last) {
                    count++;  // 计数增加
                } else {
                    // 将计数和字符拼接到结果中
                    next.append(count).append(last);
                    count = 1;  // 重置计数
                    last = chars[j];  // 更新当前字符
                }
            }
            // 最后一个字符的计数和字符拼接
            next.append(count).append(last);

            // 更新 content 为新生成的序列
            content = next;
        }

        // 输出最终生成的序列
        System.out.println(content);
    }

}